/**
 * 封装axios,增加请求和接收拦截
 * 
 * **/ 

// 引入文件
import axios from "axios";
// 引入消息提示
import { ElMessage } from 'element-plus'

// 全局配置
const service = axios.create({
    baseURL:"/api", // 根路径
    timeout:8000,  //  超时时间
    headers: {
		// 设置后端需要的传参类型
		'Content-Type': 'application/json',
	},
})

// 请求拦截
service.interceptors.request.use(
    
    config => {
        // 发送请求前的一些处理,配置请求头、设置token等
        config.data = JSON.stringify(config.data)  // js对象转为json字符串
        config.headers = {
            'Content-Type': 'application/json',
        }
        // 设置token
        // const token = getCookie("token")  // 从localStorage中获取token
        // if(token){
        //     config.params = {"token":token}  // 参数中携带,根据项目需求选择
        //     config.headers.token = token // 请求头中携带,根据项目需求选择
        // }
        return config
    }, 
    error => {
        // todo 待学习
        Promise.reject(error)
    }
)


// 响应拦截,处理返回值
service.interceptors.response.use(
    response => {
        const {code, data, msg} = response.data
        // 返回给api调用者
        return data
    },
    error => {
        Promise.reject(error)
    }
)


// 导出文件
export default service